// 引入 stream 模块
const { Readable } = require('stream');

// 自定义 MyReadable 类，继承自 Readable
class MyReadable extends Readable {
  constructor() {
    super();
    // 初始化当前字符为 'a'
    this.currentChar = 'a';
    // 初始化结束字符为 'z'
    this.endChar = 'z';
  }

  // 实现 _read 方法，这是可读流的核心方法
  _read() {
    // 如果当前字符小于等于结束字符 'z'
    if (this.currentChar <= this.endChar) {
      // 将当前字符转换为 Buffer 并推送到流中
      this.push(this.currentChar);
      // 当前字符递增，指向下一个字符
      this.currentChar = String.fromCharCode(this.currentChar.charCodeAt(0) + 1);
    } else {
      // 如果所有字符都推送完毕，结束流
      this.push(null);
    }
  }
}

// 创建 MyReadable 的实例
const myReadable = new MyReadable();

// 将可读流的数据通过管道输出到 process.stdout（标准输出）
myReadable.pipe(process.stdout);